package com.example.dine.call;

import com.example.dine.call.view.IDineCallView;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * DineCallApplication类，Spring Boot启动类。
 */
@SpringBootApplication
public class DineCallApplication implements CommandLineRunner {

    @Autowired
    private IDineCallView dineCallView;

    public static void main(String[] args) {
        SpringApplication.run(DineCallApplication.class, args);
    }

    @Override
    public void run(String... args) throws Exception {
        while (true) {
            // 显示主菜单并获取用户的选择
            int choice = dineCallView.displayMainMenu();
            // 根据用户的选择执行相应的操作
            switch (choice) {
                case 1:
                    // 处理顾客取号的操作
                    dineCallView.customerQueue();
                    break;
                case 2:
                    // 处理顾客查询排队信息的操作
                    dineCallView.customerQueryQueue();
                    break;
                case 3:
                    // 处理顾客应答叫号的操作
                    dineCallView.customerResponse();
                    break;
                case 4:
                    // 处理餐厅叫号的操作
                    dineCallView.restaurantCall();
                    break;
                case 5:
                    // 处理餐厅查看排队列表的操作
                    dineCallView.viewQueueList();
                    break;
                case 6:
                    // 处理餐厅查看已叫号列表的操作
                    dineCallView.viewCalledQueueList();
                    break;
                case 7:
                    // 处理餐厅查看餐桌列表的操作
                    dineCallView.viewTableList();
                    break;
                case 8:
                    // 处理餐厅增加餐桌的操作
                    dineCallView.addTable();
                    break;
                case 9:
                    // 处理餐厅删除餐桌的操作
                    dineCallView.deleteTable();
                    break;
                case 10:
                    // 处理解析二维码的操作
                    dineCallView.parseQRCode();
                    break;
                case 0:
                    // 处理退出系统的操作
                    dineCallView.exitSystem();
                    break;
                default:
                    // 处理无效的选择
                    System.out.println("无效的选择，请重新输入");
            }
            // 输出空白行
            System.out.println();
        }

    }
}